package py.com.alfa.escriba.gui.dto.admin;

import java.util.ArrayList;
import java.util.List;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;


@JsonIgnoreProperties(ignoreUnknown = true)
public class PersonaInfoDTO extends PersonaDTO {
	
	private TabRefDTO tipoPersonaDTO;
	private TabRefDTO sexoDTO;
	private TabRefDTO estadoCivilDTO;
	private PaisDTO paisDTO;
	
	private List<TelefonoDTO>  telefonos;
	private List<DomicilioDTO> domicilios;
	private List<PersonasdocumentosDTO> documentos;
	
	private List<Long> eliminadosDomicilios;
	private List<Long> eliminadosDocumentos;
	private List<Long> eliminadosComparecientes;
	
	public PersonaInfoDTO() {
		this.setPersonaJuridica(new PersonasjuridicasinfoDTO());
		this.telefonos = new ArrayList<TelefonoDTO>();
		this.domicilios = new ArrayList<DomicilioDTO>();
		this.eliminadosDomicilios = new ArrayList<Long>();
		this.eliminadosDocumentos = new ArrayList<Long>();
		this.eliminadosComparecientes = new ArrayList<Long>();
	}
	
	public PersonaInfoDTO(PersonaDTO dto) {
		this.setActivo(dto.isActivo());
		this.setId(dto.getId());
		this.setTrn(dto.getTrn());
		
		this.telefonos = new ArrayList<TelefonoDTO>();
		this.domicilios = new ArrayList<DomicilioDTO>();
		this.documentos = new ArrayList<PersonasdocumentosDTO>();
		this.eliminadosDomicilios = new ArrayList<Long>();
		this.eliminadosDocumentos = new ArrayList<Long>();
		this.eliminadosComparecientes = new ArrayList<Long>();

	}

	public List<TelefonoDTO> getTelefonos() {
		return telefonos;
	}

	public void setTelefonos(List<TelefonoDTO> telefonos) {
		this.telefonos = telefonos;
	}

	public List<DomicilioDTO> getDomicilios() {
		return domicilios;
	}

	public void setDomicilios(List<DomicilioDTO> domicilios) {
		this.domicilios = domicilios;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("ClienteInfoDTO [");
		builder.append(super.toString());
		builder.append(", telefonos=");
		if ( this.telefonos != null) {
			for (TelefonoDTO dto : this.telefonos) {
				builder.append(dto);
				builder.append(",");			
			}
		}
		builder.append(", domicilios=");
		if( this.domicilios != null) {
			for (DomicilioDTO dto : this.domicilios) {
				builder.append(dto);
				builder.append(",");			
			}
		}
		builder.append("]");
		return builder.toString();
	}
	
	public List<Long> getEliminadosDomicilios() {
		return eliminadosDomicilios;
	}

	public void setEliminadosDomicilios(List<Long> eliminadosDomicilios) {
		this.eliminadosDomicilios = eliminadosDomicilios;
	}

	public List<Long> getEliminadosDocumentos() {
		return eliminadosDocumentos;
	}

	public void setEliminadosDocumentos(List<Long> eliminadosDocumentos) {
		this.eliminadosDocumentos = eliminadosDocumentos;
	}

	public List<PersonasdocumentosDTO> getDocumentos() {
		return documentos;
	}

	public void setDocumentos(List<PersonasdocumentosDTO> documentos) {
		this.documentos = documentos;
	}

	public TabRefDTO getTipoPersonaDTO() {
		return tipoPersonaDTO;
	}

	public void setTipoPersonaDTO(TabRefDTO tipoPersonaDTO) {
		this.setTipoPersona(tipoPersonaDTO != null ? tipoPersonaDTO.getId() : null);
		this.tipoPersonaDTO = tipoPersonaDTO;
	}

	public TabRefDTO getSexoDTO() {
		return sexoDTO;
	}

	public void setSexoDTO(TabRefDTO sexoDTO) {
		this.setSexo(sexoDTO != null ? sexoDTO.getId() : null);
		this.sexoDTO = sexoDTO;
	}

	public TabRefDTO getEstadoCivilDTO() {
		return estadoCivilDTO;
	}

	public void setEstadoCivilDTO(TabRefDTO estadoCivilDTO) {
		this.setEstadoCivil(estadoCivilDTO != null ? estadoCivilDTO.getId() : null);
		this.estadoCivilDTO = estadoCivilDTO;
	}

	public PaisDTO getPaisDTO() {
		return paisDTO;
	}

	public void setPaisDTO(PaisDTO paisDTO) {
		this.setPais(paisDTO != null ? paisDTO.getId() : null);
		this.paisDTO = paisDTO;
	}

	public List<Long> getEliminadosComparecientes() {
		return eliminadosComparecientes;
	}

	public void setEliminadosComparecientes(List<Long> eliminadosComparecientes) {
		this.eliminadosComparecientes = eliminadosComparecientes;
	}
	
}
